package com.banyuan.lesson.thread;

import java.util.Scanner;

/*
* 进程 一个独立的程序 操作系统里的并发
* 线程 进程的并发
* 并发编程
* 线程是一种工具
* 同时
*
* 线程的生命周期
* */
public class DefineThread {
    public static void main(String[] args) {
        //1、当前线程处于新建状态；
        Thread th =  new Thread(()->{
            System.out.println(Thread.currentThread() + "+" + "aaa");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            while(!Thread.currentThread().isInterrupted()){
                System.out.println("");
            }
        });
        th.interrupt();//设置标志位，让isInterrupted变为true；不处于睡眠和阻塞状态可以打断；
        //2、可运行状态 Runnable；
        //只有抢到了cpu资源，才会运行；
        th.start();

        //3、睡眠状态；
        //让线程阻塞的状态 会造成当前线程释放cpu资源；
        Scanner in = new Scanner(System.in);
        //IO阻塞；
        in.next();
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        //4、钝化 该对象已经不能当作线程来用了；
        //线程是一个不能死而复生的东西，也就是说只能start一次；
        //我们不能通过某个方法强行让线程死掉，只能让他自然死亡（run方法结束）；
        th.interrupt();//设置一个interrupted的标志位；
    }
}
